On-boarding applications to a cloud

ABSTRACT

Methods and arrangements for on-boarding an application to a cloud. An application for hosting in a cloud environment is provided. Metadata related to the application is provided, and metadata related to the cloud is obtained. The application metadata and cloud metadata are compared, and the compatibility of the application with existing offerings of the cloud is ascertained. The application is on-boarded to the cloud.

CROSS REFERENCE TO RELATED APPLICATION

This application is a continuation of U.S. patent application Ser. No.13/192,678, entitled METHODS AND SYSTEMS FOR ON-BOARDING APPLICATIONS TOA CLOUD, filed on Jul. 28, 2011, which is incorporated by reference inits entirety.

BACKGROUND

Generally, the cloud, or cloud network, has grown significantly in itsreach, importance and applicability and users of different types arecontinually entering the greater cloud hosting space. Among these newerparticipants are telecom operators, for instance. While allparticipants, both established and newer, are eager to host manyapplications from different application and service vendors on thecloud, challenges have been encountered in the process of on-boardingnew applications (or “apps”) to the cloud. At best, smaller componentsteps of such a process are undertaken but a more efficient andcomprehensive process from end-to-end has hitherto been elusive.

BRIEF SUMMARY

In summary, one aspect of the invention provides: a method comprising:providing an application for hosting in a cloud environment; providingmetadata related to the application; obtaining metadata related to thecloud; comparing the application metadata and cloud metadata;ascertaining the compatibility of the application with existingofferings of the cloud; and on-boarding the application to the cloud.

For a better understanding of exemplary embodiments of the invention,together with other and further features and advantages thereof,reference is made to the following description, taken in conjunctionwith the accompanying drawings, and the scope of the claimed embodimentsof the invention will be pointed out in the appended claims.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

FIG. 1 schematically illustrates an arrangement for on-boarding anapplication to a cloud.

FIG. 2 sets forth an example of cloud-side metadata.

FIG. 3 sets forth an example of service-side metadata.

FIG. 4 sets forth a process more generally for on-boarding anapplication to a cloud.

FIG. 5 depicts a cloud computing node.

FIG. 6 depicts a cloud computing environment.

FIG. 7 depicts abstraction model layers.

DETAILED DESCRIPTION

It will be readily understood that the components of the embodiments ofthe invention, as generally described and illustrated in the figuresherein, may be arranged and designed in a wide variety of differentconfigurations in addition to the described exemplary embodiments. Thus,the following more detailed description of the embodiments of theinvention, as represented in the figures, is not intended to limit thescope of the embodiments of the invention, as claimed, but is merelyrepresentative of exemplary embodiments of the invention.

Reference throughout this specification to “one embodiment” or “anembodiment” (or the like) means that a particular feature, structure, orcharacteristic described in connection with the embodiment is includedin at least one embodiment of the invention. Thus, appearances of thephrases “in one embodiment” or “in an embodiment” or the like in variousplaces throughout this specification are not necessarily all referringto the same embodiment.

Furthermore, the described features, structures, or characteristics maybe combined in any suitable manner in at least one embodiment. In thefollowing description, numerous specific details are provided to give athorough understanding of embodiments of the invention. One skilled inthe relevant art will recognize, however, that the various embodimentsof the invention can be practiced without at least one of the specificdetails, or with other methods, components, materials, et cetera. Inother instances, well-known structures, materials, or operations are notshown or described in detail to avoid obscuring aspects of theinvention.

The description now turns to the figures. The illustrated embodiments ofthe invention will be best understood by reference to the figures. Thefollowing description is intended only by way of example and simplyillustrates certain selected exemplary embodiments of the invention asclaimed herein.

It should be noted that the flowchart and block diagrams in the figuresillustrate the architecture, functionality, and operation of possibleimplementations of systems, apparatuses, methods and computer programproducts according to various embodiments of the invention. In thisregard, each block in the flowchart or block diagrams may represent amodule, segment, or portion of code, which comprises at least oneexecutable instruction for implementing the specified logicalfunction(s). It should also be noted that, in some alternativeimplementations, the functions noted in the block may occur out of theorder noted in the figures. For example, two blocks shown in successionmay, in fact, be executed substantially concurrently, or the blocks maysometimes be executed in the reverse order, depending upon thefunctionality involved. It will also be noted that each block of theblock diagrams and/or flowchart illustration, and combinations of blocksin the block diagrams and/or flowchart illustration, can be implementedby special purpose hardware-based systems that perform the specifiedfunctions or acts, or combinations of special purpose hardware andcomputer instructions.

The disclosure now turns to FIGS. 1-3. It should be appreciated that theprocesses, arrangements and products broadly illustrated therein can becarried out on or in accordance with essentially any suitable computersystem or set of computer systems, which may, by way of an illustrativeand non-restrictive example, include a system or server such as thatindicated at 12 in FIG. 5. In accordance with an example embodiment,most if not all of the process steps, components and outputs discussedwith respect to FIGS. 1-3 can be performed or utilized by way of aprocessing unit or units and system memory such as those indicated,respectively, at 16 and 28 in FIG. 5, whether on a server computer, aclient computer, a node computer in a distributed network, or anycombination thereof.

To facilitate easier reference, in advancing from FIG. 1 to and throughFIG. 3, a reference numeral is advanced by a multiple of 100 inindicating a substantially similar or analogous component or elementwith respect to at least one component or element found in at least oneearlier figure among FIGS. 1-3.

In accordance with at least one embodiment of the invention, there arebroadly contemplated herein systems and methods for on-boarding newapplications to the cloud in a way to significantly shorten associatedcycle times and thus accord efficiencies of benefit to all participantsinvolved. Solutions, as broadly contemplated herein, can be replicatedacross replicated across different domains (e.g., telecom, media andothers) and, in offering an end-to-end process, also facilitate theoptional automation of several steps.

Broadly contemplated herein, in accordance with at least one embodimentof the invention, are solutions which provide a standard representationof the services offered, from the cloud point of view and from theapplication point of view. Also optionally provided is a standardrepresentation of various attributes of end-user requirements.Components are brought together from multiple domains, such asvirtualization, end-application, storage, and hosting on the cloud,while a provision is provided for matching host metadata with guestmetadata in a way to yield an end-to-end application on-boarding processthat presents significant efficiencies compared to conventionalpiecemeal efforts.

Reference can now be made to FIG. 1, which schematically illustrates anarrangement for on-boarding an application to a cloud in accordance withat least one embodiment of the invention. As shown, an applicationdeveloper 102 and operator 104 (e.g., a telecom operator) interact withan operator/store environment 106, with which subscribers 108 (e.g.,telecom or internet) can also interact by way of browsing, buying orrunning applications. Generally, the application developer 102 definesthe metadata required for the service, while the operator 104complements this by providing the additional requirements for theservice to be executed, in terms of the actual program or executablesthat are needed to render the service or application.

In the present illustrative and non-restrictive example, in accordancewith at least one embodiment of the invention, an on-boarding processand arrangement provides a representation that captures relevant detailsabout what the cloud offers for hosting, or host metadata. Cloudinfrastructure 110 resident in the operator/store environment can hostor house this host metadata 112, or at least provide ready access to thesame as hosted in the cloud 114 itself. For instance, such host metadatacan include: default offerings (e.g., relating to hardware, software andapplications); payment or subscription terms; other terms and conditionsfor hosting an application. An illustrative and non-restrictive exampleof how such metadata can appear is indicated in FIG. 2 at 212.

In accordance with at least one embodiment of the invention, developer102 and operator 104 alike interact with a portal 116 of operator/storeenvironment 106. Developer 102 provides a representation with relevantdetails of an application desired to be on-boarded to and hosted oncloud 114. Such details, for the purpose of running the application, canbe referred to as guest or service metadata 118, can be stored inoperator/store environment 106, and can include: requiredinfrastructure; required platforms; required middleware or otherapplication stack; and any other requirements for running theapplication. An illustrative and non-restrictive example of how suchmetadata can appear is indicated in FIG. 3 at 318.

In accordance with at least one embodiment of the invention, after withthe host (112) and guest/service (118) metadata on hand, and in a mannernow to be better appreciated, an algorithm is defined or provided viaworkflow 120 that ascertains whether the two are compatible, in terms ofwhat the cloud 114 provides as compared to what the applicationrequires. An outline of the algorithm is then provided. (Other types ofcomparison or negotiation could be employed as an alternative to analgorithm.) In a general sense, such an algorithm could work bycomparing each of the attributes or requirements that feature in themetadata. Thus for each attribute, the algorithm would essentially checkas to whether offerings of the cloud 114 cover the range required by theservice or application in question. (For instance, for a service thatrequires 2 GB of RAM, as specified in service metadata, the algorithmwould ascertain as to whether there is an offering from cloud 114 thatprovides at least 2 GB of RAM. This can be generalized by specifying arange of values required for each attribute, and ensuring that theoffering that is suggested does span the required range. The algorithmcan cover other aspects, as well, such as features and ranges of valuesas might be mandated by the application metadata, or features and rangesof values that may be desirable but not essential.) There may also beconsidered any requirements that a subscriber 108, i.e, an end-user ofthe application may have him/herself, as he/she may wish to specify,when instantiating a request on the cloud (e.g., through an app store122 hosted by the operator/store environment 106). Thus, suchrequirements may also be captured by the guest/service metadata 118 andthereupon be used to instantiate the application, to the extent that theend-application permits such flexibility.

In accordance with at least one embodiment of the invention, as shown inFIG. 1, an application 130 is deployed to the cloud 114, and mayincorporate or make use of at least one virtual machine (VM), indicatedhere as “VM1” and “VM2”. The discussion now turns to different mannersvia which the app 130 can be so deployed, depending on the compatibilityof an app with offerings of the cloud 114 based on a comparison of thehost and service metadata 112/118. Accordingly, when it is desired toon-board a new application to the cloud 114, a check is first made(e.g., via the aforementioned algorithm) as to whether the requirementsof the application of developer 102 map directly to some offeringavailable from the cloud 114. If yes, the offering is then mapped to thenew application; this offering could be PaaS, IaaS and or AppaaS(Platform as a Service, Infrastructure as a Service, Application as aService). If no, a check is made as to whether a new offering can bedefined on the cloud based on other offerings available on the cloud.

In accordance with at least one embodiment of the invention, failing theabove, a check is then made, via a provisioning manager 124 (such as aTivoli Provisioning Manager [TPM] as developed by IBM of Armonk, N.Y.)as to whether a template creation tool 126 (such as the BlueHorse tooldeveloped by IBM) can be used to create a template of the applicationand thereupon host it on the cloud 114. (It should be undersood that aTPM and BlueHorse tool are presented here as illustrative andnon-restrictive examples of a provisioning manager and template creationtool, respectively.) In accordance with at least one embodiment of theinvention, if the aforementioned template creation step is possible,then the template of the application 134 can be added as a catalog entry(and thus hosted on the cloud 114). If not, then a check is made as towhether it is manually possible to load the application on a VM on thecloud 114, by consulting a VM image library 128, and thereafter publishhow the application may be accessed. (By way of illustrative andnon-restrictive examples, both a Tivoli Provisioning Manager and TivoliService Automation Manager, as developed by IBM, allow a user toprovision VM's so as to then be able to install appliations on theVM's.) If a new application is being set up from scratch, manual stepsmay also be employed to host the application on infrastructure on thecloud. In other words, when it is not possible to on-board theapplication automatically at the time of a user request, theadministrator may provision the required infrastructure from cloud 114,and then host the application on the provisioned infrastructuremanually.

Generally, in accordance with at least one embodiment of the invention,a check is made for other back-end services that would need to beintegrated with the application 134, such as metering, billing,monitoring and availability. (Such services can be offered by the cloud114 as constituent components of features offered by the cloud 114, andcan be common across different applications.) Finally, the cloudoffering (if any) is published at the app store 122.

In accordance with at least one embodiment of the invention, thefollowing can be included in a representation of what the cloud canhost: hardware platforms it can provide (e.g., operating system,CPU/Memory/Hard disk); software stacks it can provide (e.g., middleware,applications); applications it can provide or provision (e.g., solutionssuch as a template creation tool [e.g., BlueHorse] that can be employedto capture images of existing running applications); services it canprovide; workflows that may be provisioned (which may be relevant to seeif a new offering may be composed of existing workflows); non-functionalrequirements provided by the cloud (e.g., performance, security); andadministrative requirements (e.g., integration with billing and otherservices). These elements, many of which can be found in a catalog(e.g., which is provided for the cloud 114 and lists cloud offerings)are provided by way of illustrative and non-restrictive example, and theabove list is certainly not intended to be exhaustive.

In accordance with at least one embodiment of the invention, thefollowing can be included in a representation of what an applicationwould need and/or what an end-user might need from the application:hardware stack; software stack; services stack; network requirements;and non-functional requirements (e.g., availability, response time,cost). These elements are provided by way of illustrative andnon-restrictive example, and the above list is certainly not intended tobe exhaustive.

In accordance with at least one variant embodiment of the invention,applications in a wide number of domains could be covered (e.g., mobile,consumer electronics others). In another alternative, one of a pluralityof cloud services could be selected for provisioning the application,whereby the cloud or cloud model (e.g., public, private, hybrid) thatprovides a best fit could be sought.

FIG. 4 sets forth a process more generally for on-boarding anapplication to a cloud, in accordance with at least one embodiment ofthe invention. It should be appreciated that a process such as thatbroadly illustrated in FIG. 4 can be carried out on essentially anysuitable computer system or set of computer systems, which may, by wayof an illustrative and on-restrictive example, include a system such asthat indicated at 12 in FIG. 5. In accordance with an exampleembodiment, most if not all of the process steps discussed with respectto FIG. 4 can be performed by way a processing unit or units and systemmemory such as those indicated, respectively, at 16 and 28 in FIG. 5.

As shown in FIG. 4, an application for hosting in a cloud environment isprovided (402). Metadata related to the application is provided (404),and metadata related to the cloud is obtained (406). The applicationmetadata and cloud metadata are compared (408), and the compatibility ofthe application with existing offerings of the cloud is ascertained(410). The application is on-boarded to the cloud (412).

It is understood in advance that although this disclosure includes adetailed description on cloud computing, implementation of the teachingsrecited herein are not limited to a cloud computing environment. Rather,embodiments of the present invention are capable of being implemented inconjunction with any other type of computing environment now known orlater developed.

Cloud computing is a model of service delivery for enabling convenient,on-demand network access to a shared pool of configurable computingresources (e.g. networks, network bandwidth, servers, processing,memory, storage, applications, virtual machines, and services) that canbe rapidly provisioned and released with minimal management effort orinteraction with a provider of the service. This cloud model may includeat least five characteristics, at least three service models, and atleast four deployment models.

Characteristics are as follows:

On-demand self-service: a cloud consumer can unilaterally provisioncomputing capabilities, such as server time and network storage, asneeded automatically without requiring human interaction with theservice's provider.

Broad network access: capabilities are available over a network andaccessed through standard mechanisms that promote use by heterogeneousthin or thick client platforms (e.g., mobile phones, laptops, and PDAs).

Resource pooling: the provider's computing resources are pooled to servemultiple consumers using a multi-tenant model, with different physicaland virtual resources dynamically assigned and reassigned according todemand. There is a sense of location independence in that the consumergenerally has no control or knowledge over the exact location of theprovided resources but may be able to specify location at a higher levelof abstraction (e.g., country, state, or datacenter).

Rapid elasticity: capabilities can be rapidly and elasticallyprovisioned, in some cases automatically, to quickly scale out andrapidly released to quickly scale in. To the consumer, the capabilitiesavailable for provisioning often appear to be unlimited and can bepurchased in any quantity at any time.

Measured service: cloud systems automatically control and optimizeresource use by leveraging a metering capability at some level ofabstraction appropriate to the type of service (e.g., storage,processing, bandwidth, and active user accounts). Resource usage can bemonitored, controlled, and reported providing transparency for both theprovider and consumer of the utilized service.

Service Models are as follows:

Software as a Service (SaaS): the capability provided to the consumer isto use the provider's applications running on a cloud infrastructure.The applications are accessible from various client devices through athin client interface such as a web browser (e.g., web-based email). Theconsumer does not manage or control the underlying cloud infrastructureincluding network, servers, operating systems, storage, or evenindividual application capabilities, with the possible exception oflimited user-specific application configuration settings.

Platform as a Service (PaaS): the capability provided to the consumer isto deploy onto the cloud infrastructure consumer-created or acquiredapplications created using programming languages and tools supported bythe provider. The consumer does not manage or control the underlyingcloud infrastructure including networks, servers, operating systems, orstorage, but has control over the deployed applications and possiblyapplication hosting environment configurations.

Infrastructure as a Service (IaaS): the capability provided to theconsumer is to provision processing, storage, networks, and otherfundamental computing resources where the consumer is able to deploy andrun arbitrary software, which can include operating systems andapplications. The consumer does not manage or control the underlyingcloud infrastructure but has control over operating systems, storage,deployed applications, and possibly limited control of select networkingcomponents (e.g., host firewalls).

Deployment Models are as follows:

Private cloud: the cloud infrastructure is operated solely for anorganization. It may be managed by the organization or a third party andmay exist on-premises or off-premises.

Community cloud: the cloud infrastructure is shared by severalorganizations and supports a specific community that has shared concerns(e.g., mission, security requirements, policy, and complianceconsiderations). It may be managed by the organizations or a third partyand may exist on-premises or off-premises.

Public cloud: the cloud infrastructure is made available to the generalpublic or a large industry group and is owned by an organization sellingcloud services.

Hybrid cloud: the cloud infrastructure is a composition of two or moreclouds (private, community, or public) that remain unique entities butare bound together by standardized or proprietary technology thatenables data and application portability (e.g., cloud bursting forloadbalancing between clouds).

A cloud computing environment is service oriented with a focus onstatelessness, low coupling, modularity, and semantic interoperability.At the heart of cloud computing is an infrastructure comprising anetwork of interconnected nodes.

Referring now to FIG. 5, a schematic of an example of a cloud computingnode is shown. Cloud computing node 10′ is only one example of asuitable cloud computing node and is not intended to suggest anylimitation as to the scope of use or functionality of embodiments of theinvention described herein. Regardless, cloud computing node 10′ iscapable of being implemented and/or performing any of the functionalityset forth hereinabove.

In cloud computing node 10′ there is a computer system/server 12′, whichis operational with numerous other general purpose or special purposecomputing system environments or configurations. Examples of well-knowncomputing systems, environments, and/or configurations that may besuitable for use with computer system/server 12′ include, but are notlimited to, personal computer systems, server computer systems, thinclients, thick clients, handheld or laptop devices, multiprocessorsystems, microprocessor-based systems, set top boxes, programmableconsumer electronics, network PCs, minicomputer systems, mainframecomputer systems, and distributed cloud computing environments thatinclude any of the above systems or devices, and the like.

Computer system/server 12′ may be described in the general context ofcomputer system executable instructions, such as program modules, beingexecuted by a computer system. Generally, program modules may includeroutines, programs, objects, components, logic, data structures, and soon that perform particular tasks or implement particular abstract datatypes. Computer system/server 12′ may be practiced in distributed cloudcomputing environments where tasks are performed by remote processingdevices that are linked through a communications network. In adistributed cloud computing environment, program modules may be locatedin both local and remote computer system storage media including memorystorage devices.

As shown in FIG. 5, computer system/server 12′ in cloud computing node10′ is shown in the form of a general-purpose computing device. Thecomponents of computer system/server 12′ may include, but are notlimited to, one or more processors or processing units 16′, a systemmemory 28′, and a bus 18′ that couples various system componentsincluding system memory 28′ to processor 16′.

Bus 18′ represents one or more of any of several types of busstructures, including a memory bus or memory controller, a peripheralbus, an accelerated graphics port, and a processor or local bus usingany of a variety of bus architectures. By way of example, and notlimitation, such architectures include Industry Standard Architecture(ISA) bus, Micro Channel Architecture (MCA) bus, Enhanced ISA (EISA)bus, Video Electronics Standards Association (VESA) local bus, andPeripheral Component Interconnects (PCI) bus.

Computer system/server 12′ typically includes a variety of computersystem readable media. Such media may be any available media that isaccessible by computer system/server 12′, and it includes both volatileand non-volatile media, removable and non-removable media.

System memory 28′ can include computer system readable media in the formof volatile memory, such as random access memory (RAM) 30′ and/or cachememory 32′. Computer system/server 12′ may further include otherremovable/non-removable, volatile/non-volatile computer system storagemedia. By way of example only, storage system 34′ can be provided forreading from and writing to a non-removable, non-volatile magnetic media(not shown and typically called a “hard drive”). Although not shown, amagnetic disk drive for reading from and writing to a removable,non-volatile magnetic disk (e.g., a “floppy disk”), and an optical diskdrive for reading from or writing to a removable, non-volatile opticaldisk such as a CD-ROM, DVD-ROM or other optical media can be provided.In such instances, each can be connected to bus 18′ by one or more datamedia interfaces. As will be further depicted and described below,memory 28′ may include at least one program product having a set (e.g.,at least one) of program modules that are configured to carry out thefunctions of embodiments of the invention.

Program/utility 40′, having a set (at least one) of program modules 42′,may be stored in memory 28′ by way of example, and not limitation, aswell as an operating system, one or more application programs, otherprogram modules, and program data. Each of the operating system, one ormore application programs, other program modules, and program data orsome combination thereof, may include an implementation of a networkingenvironment. Program modules 42′ generally carry out the functionsand/or methodologies of embodiments of the invention as describedherein.

Computer system/server 12′ may also communicate with one or moreexternal devices 14′ such as a keyboard, a pointing device, a display24′, etc.; one or more devices that enable a user to interact withcomputer system/server 12; and/or any devices (e.g., network card,modem, etc.) that enable computer system/server 12′ to communicate withone or more other computing devices. Such communication can occur viaInput/Output (I/O) interfaces 22′. Still yet, computer system/server 12′can communicate with one or more networks such as a local area network(LAN), a general wide area network (WAN), and/or a public network (e.g.,the Internet) via network adapter 20′. As depicted, network adapter 20′communicates with the other components of computer system/server 12′ viabus 18′. It should be understood that although not shown, other hardwareand/or software components could be used in conjunction with computersystem/server 12′. Examples, include, but are not limited to: microcode,device drivers, redundant processing units, external disk drive arrays,RAID systems, tape drives, and data archival storage systems, etc.

Referring now to FIG. 6, illustrative cloud computing environment 50′ isdepicted. As shown, cloud computing environment 50′ comprises one ormore cloud computing nodes 10′ with which local computing devices usedby cloud consumers, such as, for example, personal digital assistant(PDA) or cellular telephone 54A′, desktop computer 54B′, laptop computer54C′, and/or automobile computer system 54N′ may communicate. Nodes 10′may communicate with one another. They may be grouped (not shown)physically or virtually, in one or more networks, such as Private,Community, Public, or Hybrid clouds as described hereinabove, or acombination thereof. This allows cloud computing environment 50′ tooffer infrastructure, platforms and/or software as services for which acloud consumer does not need to maintain resources on a local computingdevice. It is understood that the types of computing devices 54A′-N′shown in FIG. 6 are intended to be illustrative only and that computingnodes 10′ and cloud computing environment 50′ can communicate with anytype of computerized device over any type of network and/or networkaddressable connection (e.g., using a web browser).

Referring now to FIG. 7, a set of functional abstraction layers providedby cloud computing environment 50′ (FIG. 6) is shown. It should beunderstood in advance that the components, layers, and functions shownin FIG. 7 are intended to be illustrative only and embodiments of theinvention are not limited thereto. As depicted, the following layers andcorresponding functions are provided:

Hardware and software layer 60′ includes hardware and softwarecomponents. Examples of hardware components include mainframes, in oneexample IBM® zSeries® systems; RISC (Reduced Instruction Set Computer)architecture based servers, in one example IBM pSeries® systems; IBMxSeries® systems; IBM BladeCenter® systems; storage devices; networksand networking components. Examples of software components includenetwork application server software, in one example IBM WebSphere®application server software; and database software, in one example IBMDB2®, database software. (IBM, zSeries, pSeries, xSeries, BladeCenter,WebSphere, and DB2 are trademarks of International Business MachinesCorporation registered in many jurisdictions worldwide.)

Virtualization layer 62′ provides an abstraction layer from which thefollowing examples of virtual entities may be provided: virtual servers;virtual storage; virtual networks, including virtual private networks;virtual applications and operating systems; and virtual clients.

In one example, management layer 64′ may provide the functions describedbelow. Resource provisioning provides dynamic procurement of computingresources and other resources that are utilized to perform tasks withinthe cloud computing environment. Metering and Pricing provide costtracking as resources are utilized within the cloud computingenvironment, and billing or invoicing for consumption of theseresources. In one example, these resources may comprise applicationsoftware licenses. Security provides identity verification for cloudconsumers and tasks, as well as protection for data and other resources.User portal provides access to the cloud computing environment forconsumers and system administrators. Service level management providescloud computing resource allocation and management such that requiredservice levels are met. Service Level Agreement (SLA) planning andfulfillment provide pre-arrangement for, and procurement of, cloudcomputing resources for which a future requirement is anticipated inaccordance with an SLA.

Workloads layer 66′ provides examples of functionality for which thecloud computing environment may be utilized. Examples of workloads andfunctions which may be provided from this layer include: mapping andnavigation; software development and lifecycle management; virtualclassroom education delivery; data analytics processing; transactionprocessing; and application hosting.

It should be noted that aspects of the invention may be embodied as asystem, method or computer program product. Accordingly, aspects of theinvention may take the form of an entirely hardware embodiment, anentirely software embodiment (including firmware, resident software,micro-code, etc.) or an embodiment combining software and hardwareaspects that may all generally be referred to herein as a “circuit,”“module” or “system.” Furthermore, aspects of the invention may take theform of a computer program product embodied in at least one computerreadable medium having computer readable program code embodied thereon.

Any combination of at least one computer readable medium may beutilized. The computer readable medium may be a computer readable signalmedium or a computer readable storage medium. A computer readablestorage medium may be, for example, but not limited to, an electronic,magnetic, optical, electromagnetic, infrared, or semiconductor system,apparatus, or device, or any suitable combination of the foregoing. Morespecific examples (a non-exhaustive list) of the computer readablestorage medium would include the following: an electrical connectionhaving at least one wire, a portable computer diskette, a hard disk, arandom access memory (RAM), a read-only memory (ROM), an erasableprogrammable read-only memory (EPROM or Flash memory), an optical fiber,a portable compact disc read-only memory (CD-ROM), an optical storagedevice, a magnetic storage device, or any suitable combination of theforegoing. In the context of this document, a computer readable storagemedium may be any tangible medium that can contain, or store a programfor use by or in connection with an instruction execution system,apparatus, or device.

A computer readable signal medium may include a propagated data signalwith computer readable program code embodied therein, for example, inbaseband or as part of a carrier wave. Such a propagated signal may takeany of a variety of forms, including, but not limited to,electro-magnetic, optical, or any suitable combination thereof. Acomputer readable signal medium may be any computer readable medium thatis not a computer readable storage medium and that can communicate,propagate, or transport a program for use by or in connection with aninstruction execution system, apparatus, or device.

Program code embodied on a computer readable medium may be transmittedusing any appropriate medium, including but not limited to wireless,wire line, optical fiber cable, RF, etc., or any suitable combination ofthe foregoing.

Computer program code for carrying out operations for aspects of theinvention may be written in any combination of at least one programminglanguage, including an object oriented programming language such asJava®, Smalltalk, C++ or the like and conventional proceduralprogramming languages, such as the “C” programming language or similarprogramming languages. The program code may execute entirely on theuser's computer (device), partly on the user's computer, as astand-alone software package, partly on the user's computer and partlyon a remote computer or entirely on the remote computer or server. Inthe latter scenario, the remote computer may be connected to the user'scomputer through any type of network, including a local area network(LAN) or a wide area network (WAN), or the connection may be made to anexternal computer (for example, through the Internet using an InternetService Provider).

Aspects of the invention are described herein with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems) and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer program instructions. These computer program instructions maybe provided to a processor of a general purpose computer, specialpurpose computer, or other programmable data processing apparatus toproduce a machine, such that the instructions, which execute via theprocessor of the computer or other programmable data processingapparatus, create means for implementing the functions/acts specified inthe flowchart and/or block diagram block or blocks.

These computer program instructions may also be stored in a computerreadable medium that can direct a computer, other programmable dataprocessing apparatus, or other devices to function in a particularmanner, such that the instructions stored in the computer readablemedium produce an article of manufacture including instructions whichimplement the function/act specified in the flowchart and/or blockdiagram block or blocks.

The computer program instructions may also be loaded onto a computer,other programmable data processing apparatus, or other devices to causea series of operational steps to be performed on the computer, otherprogrammable apparatus or other devices to produce a computerimplemented process such that the instructions which execute on thecomputer or other programmable apparatus provide processes forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks.

This disclosure has been presented for purposes of illustration anddescription but is not intended to be exhaustive or limiting. Manymodifications and variations will be apparent to those of ordinary skillin the art. The embodiments were chosen and described in order toexplain principles and practical application, and to enable others ofordinary skill in the art to understand the disclosure for variousembodiments with various modifications as are suited to the particularuse contemplated.

Although illustrative embodiments of the invention have been describedherein with reference to the accompanying drawings, it is to beunderstood that the embodiments of the invention are not limited tothose precise embodiments, and that various other changes andmodifications may be affected therein by one skilled in the art withoutdeparting from the scope or spirit of the disclosure.

What is claimed is:
 1. A method comprising: providing an application forhosting in a cloud environment; providing metadata related to theapplication; obtaining metadata related to the cloud; comparing theapplication metadata and cloud metadata; ascertaining the compatibilityof the application an existing offering of the cloud; and on-boardingthe application to the cloud via performing the following: (a)determining whether the application matches an existing offering of thecloud and, if so, mapping the existing offering to the application; if(a) does not apply: (b) ascertaining whether a new offering can bedefined on the cloud and, if so, deploying the application to the cloud;if (b) does not apply: (c) ascertaining whether a template creation toolcan create a template of the application for being hosted on the cloudand, if so, hosting the template of the application on the cloud; and if(c) does not apply: (d) ascertaining whether it is possible to load theapplication on a virtual machine on the cloud and, if so, loading theapplication on a virtual machine on the cloud.
 2. The method accordingto claim 1, wherein the application metadata includes end-userrequirements.
 3. The method according to claim 1, further comprisingadding a template of the application as a catalog entry if a template ofthe application can be created for being hosted on the cloud.
 4. Themethod according to claim 1, wherein said ascertaining of a possibilityof loading the application on a virtual machine comprises ascertainingwhether the application can be loaded manually.
 5. The method accordingto claim 1, wherein said ascertaining of a possibility of loading theapplication on a virtual machine comprises consulting a virtual machineimage library.
 6. The method according to claim 5, further comprisingpublishing how the application may be accessed.
 7. The method accordingto claim 1, further comprising checking the cloud for back-end servicesto be integrated with the application.